package Classes.GameDatas
{
	import Classes.GameUtils.GU_DealPlaySpeed;
	import Classes.GameViews.GV_Map;
	import Classes.GameViews.ViewDisplayers.MapTargets.MapMoveTargets.MMT_Character;
	import Classes.GameViews.ViewPanels.VP_OpenWinView;
	import Classes.GameViews.ViewPanels.VP_TextWinPanel;
	import Classes.GameViews.ViewPanels.VP_errorPanel;
	import Classes.Managers.M_Communication;
	import Classes.Managers.M_ConfigData;
	import Classes.staticinfo.Language;
	
	import flash.system.ApplicationDomain;

	/**
	 *  物品类--处理纯粹的使用物品功能 
	 * @author Administrator
	 */	
	public class GD_Item_Use extends GD_Item
	{
		public function GD_Item_Use(itemType:Number,itemNum:int)
		{
			super(itemType,itemNum);
		}
		
		/**
		 * 使用物品 
		 */		
		override public function useItem():void
		{
			var mt:MMT_Character=GV_Map.instance.controlTarget as MMT_Character;
			
			var curUserId:Number=mt.characterData.characterId;
			//如果被回血的对象是满血  则  不能让他使用吧
			if(this.itemType==M_ConfigData.instance.addLifeItem && mt.characterData.life>=mt.characterData.lifeMax)
			{
				VP_errorPanel.instance.setErrorMessage(Language.addLifeTips);
				VP_errorPanel.instance.enterFrame();
				return;
			}
			
			//如果被回城的对象是在家  则  不能让他使用
			if(this.itemType==M_ConfigData.instance.toHomeItem && (mt.mapGrid.isHaven || mt.mapGrid.isWall))
			{
				VP_errorPanel.instance.setErrorMessage(Language.toHomeTips);
				VP_errorPanel.instance.enterFrame();
				return;
			}
			
			//如果对象已经处于加速状态，再使用将覆盖原有效果，确定要使用吗？
			if(this.itemType==M_ConfigData.instance.addSpeedItem && GU_DealPlaySpeed.instance.flag)
			{
				VP_TextWinPanel.instance.openTextWindon("",Language.addSpeedTips,userFun);
				return;
			}
			
			//如果玩家等级不过,则不能使用此物品
			if(GD_Player.instance.playerLv<this.needLv)
			{
				VP_errorPanel.instance.setErrorMessage(Language.noLv);
				VP_errorPanel.instance.enterFrame();
				return;
			}
			
			//在好友家点击使用“机械工人”道具后，没有弹出相应提示框，提示玩家在好友家不能使用该道具。
			if(this.itemType==10320004 && GD_Player.instance.character.characterState==2)
			{
				VP_errorPanel.instance.setErrorMessage(Language.goHomeUseItem);
				VP_errorPanel.instance.enterFrame();
				return ;
			}
			
			if(curUserId==GD_Player.instance.playerID)
			{
				curUserId=0;
			}
			var msgContent:Object={itemID:this.itemType,friendId:curUserId};
			VP_OpenWinView.instance.openWindon(new (ApplicationDomain.currentDomain.getDefinition("Sys.CommLoadCircleClip") as Class));
			M_Communication.instance.send(12303,msgContent);
		}
		
		
		public function userFun():void
		{
			var msgContent:Object={itemID:this.itemType,friendId:0};
			VP_OpenWinView.instance.openWindon(new (ApplicationDomain.currentDomain.getDefinition("Sys.CommLoadCircleClip") as Class));
			M_Communication.instance.send(12303,msgContent);
		}
	}
}